package com.example.springboot.controller;

// 导入所需的类和库
import com.example.springboot.common.Result;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

// 定义一个Spring Boot控制器类，处理主页面相关的请求
@RestController
@RequestMapping("/main")
public class MainController {

    /**
     * 获取身份信息
     */
    @GetMapping("/loadIdentity")
    public Result<?> loadIdentity(HttpSession session) {
        // 从HttpSession中获取名为"Identity"的属性
        Object identity = session.getAttribute("Identity");
        // 检查获取到的身份信息是否不为空
        if (identity != null) {
            // 如果身份信息存在，返回成功的响应，并包含身份信息
            return Result.success(identity);
        } else {
            // 如果身份信息不存在，返回失败的响应
            return Result.error("-1", "加载失败");
        }
    }

    /**
     * 获取个人信息
     */
    @GetMapping("/loadUserInfo")
    public Result<?> loadUserInfo(HttpSession session) {
        // 从HttpSession中获取名为"User"的属性
        Object User = session.getAttribute("User");
        // 检查获取到的用户信息是否不为空
        if (User != null) {
            // 如果用户信息存在，返回成功的响应，并包含用户信息
            return Result.success(User);
        } else {
            // 如果用户信息不存在，返回失败的响应
            return Result.error("-1", "加载失败");
        }
    }

    /**
     * 退出登录
     */
    @GetMapping("/signOut")
    public Result<?> signOut(HttpSession session) {
        // 从HttpSession中移除名为"User"的属性
        session.removeAttribute("User");
        // 从HttpSession中移除名为"Identity"的属性
        session.removeAttribute("Identity");
        // 返回成功的响应，表示用户已成功退出登录
        return Result.success();
    }
}
